package Com.StudentControlSystem;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Map;

public class CorrectStudent {
    public static void correctStudent() {
        // 1.提示用户输入要修改的学生学号
        System.out.println("请输入要修改学生信息的学号：");
        Scanner scanner = new Scanner(System.in);
        String ID = scanner.next();
        if (ID == null) {
            System.out.println("输入的学号不能为空！");
            return;
        }
        //2.根据用户输入的学号检查学生学号是否存在
        // 调用getIndex方法，查找该学号在集合的索引
        int index = getIndex(ID);
        // 如果索引为-1，提示信息不存在
        if (index == -1) {
            System.out.println("要修改的学生信息不存在！");
            return;
        } else {
            // 调用correct方法进行修改操作
            Student student = correct(ID);
            System.out.println("修改成功！" + student);
        }
    }
    private static int getIndex(String ID) {

            return StudentData.getStudentMap().containsKey(ID) ? 1 : -1;
        }


    private static Student correct(String ID) {
        // 获取学生数据映射
        Map<String, List<Student>> studentMap = StudentData.getStudentMap();

        // 移除旧的学生列表
        studentMap.remove(ID);

        // 创建新的学生信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生姓名");
        String name = sc.next(); // 修改为 next() 以避免.nextLine()的问题
        System.out.println("请输入学生年龄");
        int age = sc.nextInt();
        System.out.println("请输入学生地址");
        String address = sc.next();

        // 创建新的学生对象
        Student student = new Student(name, ID, age, address);

        // 添加新学生到列表
        studentMap.put(ID, new ArrayList<>());
        studentMap.get(ID).add(student);

        // 返回修改后的学生对象
        return student;
    }
}
